/*
 * Description: app install manager
 */
#ifndef INSTALL_MANAGER_H
#define INSTALL_MANAGER_H
#include "error.h"
#include "singleton.h"
#include <atomic>
#include <mutex>
#include <evntrace.h>
#include <evntcons.h>

#include "performance/model/perf_info.h"

namespace DFX {
    class AppEventData;
}
namespace PERF {
class InstallLifeCycleHandler {
public:
    InstallLifeCycleHandler() = default;
    ~InstallLifeCycleHandler() = default;
    void Init();
    void Quit();
    void Start(std::shared_ptr<PerfInfo> perfInfo);
    void Stop(std::shared_ptr<PerfInfo> perfInfo);

    void Start(const DFX::AppEventData perfEvent);
    void Stop(const DFX::AppEventData perfEvent);
};
#define INSTALL_LIFECYCLE_HANDLER SingletonNew<PERF::InstallLifeCycleHandler>::GetInstance()
}  // namespace PERF
#endif
